package code;

public abstract class Cell
{
	private Cell top;
	private Cell bottom;
	private Cell left;
	private Cell right;
	
	
	private String texture;
	
	public int testvalue; //SACAR DESPUES
	
	public Cell(String texture)
	{
		top = null;
		bottom = null;
		left = null;
		right = null;
		this.texture = texture;
	}
	
	public abstract String PRINT();
	
	public void SETTEXTURE(String s)
	{
		texture = s;
	}
	
	public String getTexture()
	{
		return texture;
	}
	
	public Cell cellAt(Direction direction)
	{
		return direction.getNeighbour(this);
	}

	public Cell getTop()
	{
		return top;
	}

	public void setTop(Cell top)
	{
		this.top = top;
	}

	public Cell getBottom()
	{
		return bottom;
	}

	public void setBottom(Cell bottom)
	{
		this.bottom = bottom;
	}

	public Cell getLeft()
	{
		return left;
	}

	public void setLeft(Cell left)
	{
		this.left = left;
	}

	public Cell getRight()
	{
		return right;
	}

	public void setRight(Cell right)
	{
		this.right = right;
	}
	
	
	public abstract boolean makeAvailable(Direction dir);
	public abstract boolean isEmpty();
	
	
}
